iT邦幫忙

2022 iThome 鐵人賽

DAY 12
1
Software Development

從 Node.js 開發者到量化交易者:打造屬於自己的投資系統系列 第 12

Day 12 - 景氣循環指標:美國公債殖利率

  • 分享至 

  • xImage
  •  

債券是股票之外另一個重要的投資工具,就長期角度而言,股票與債券是負相關資產,所以 股債配置 是一種常見的資產配置策略。在所有債券當中,美國公債 是最重要的避險資產,因為美國公債是由美國政府作信用擔保,幾乎沒有違約問題,所以美國公債殖利率,同時也可以視為無風險利率,這也是判斷景氣循環的重要指標。當景氣衰退時,投資人偏好風險較低的資產,所以資金會撤出股市、流向債市,當債券價格上漲,債券殖利率下跌;當景氣復甦時,投資人願意承擔更高風險的投資,於是資金會撤離債市、流向股市,使債券價格下跌,債券殖利率上升。

什麼是美國公債殖利率?

債券 是發行者用來向外界籌資的工具,發行者要定期支付利息給債券持有人,並在到期時償還本金的一種有價證券,是典型的 固定收益 商品。不同單位發行的債券有不同的名稱,政府發行的是 公債,一般企業發行的是 公司債,金融機構則是 金融債券美國公債 就是指由美國政府發行的債券,依據債券的到期年限,可分為二年內的短期公債、二至十年的中期公債,以及十年以上的長期公債。

債券殖利率 是投資人從買進債券一直持有至到期日為止,這段期間可獲得的實質報酬率。債券價格與債券殖利率呈反向關係,債券價格上漲,殖利率就會下跌;債券價格下跌,殖利率就會上漲。市場上一般將 二年期公債 視為 短天期公債 代表,十年期公債 視為 長天期公債 代表。短天期公債殖利率主要是由市場利率決定,而長天期公債殖利由於到期期限較長,除了市場利率外,還反映了市場對對未來景氣與通膨的預期,因此 美國十年期公債殖利率 被市場視為觀察景氣的重要指標。另外,因美國是目前全世界最強大的國家,美國政府發行的公債幾乎沒有違約風險,因此 美國十年期公債殖利率 也常被視為 無風險利率 的代表。

CAPM 與無風險利率

CAPM資本資產定價模型 (Capital Asset Pricing Model),在投資學中 CAPM 是一個重要的財務模型,它的公式是:

預期報酬率 = 無風險利率 + β 係數 (市場報酬率 - 無風險利率)

其中 市場報酬率 - 無風險利率 的部分又稱為 風險溢酬,以股票市場來說,市場報酬率可以看做是大盤的平均報酬,β 係數考量了個股與系統性風險的關係,β 係數愈大代表該股票相對市場的風險愈大,但獲利的潛能也愈高。當預期報酬率不變,但是無風險利率上升的情況下,投資人願意承擔的風險就大幅降低,當投資人願意承受的風險降低,就會影響市場對於公司股票的估值,使本益比下修。

由於美國十年期公債殖利率經常被視為無風險利率,當美國十年期公債殖利率不斷攀升,受影響最大的就是高估值的科技成長股。根據美國財政部 2022 年上半年的資料顯示,美國十年期公債殖利率從 2021 年底的 1.52% 提升至 2.98%,這段期間的 S&P 500 指數 績效是 -20.58%,而 那斯達克 100 指數 更繳出 -41.87% 的糟糕報酬率;在臺股方面,加權指數 在 2022 年上半年績效為 -20.58%,而 半導體類指數-27.49%。相較於大盤指數,電子、科技類股儼然成為重災區,根據 CPAM 的理論基礎,這也很大程度解釋了為什麼今年電子、科技類股的股價會被大幅修正的原因。

美國公債殖利率曲線

債券殖利率曲線 是由不同天期的債券殖利率與到期期限繪製成的圖表,縱軸代表債券殖利率,橫軸代表債券到期期限。如下圖所示,我們分別畫出了 2021 年 12 月 31 日和 2022 年 6 月 30 日的美國公債殖利率曲線。

https://ithelp.ithome.com.tw/upload/images/20220912/20150150gyu4PNRQUa.png

Source:U.S. Department of the Treasury

長天期債券由於持有時間較長、風險較高,所以通常長天期債券殖利率會比短天期債券殖利率高,一般正常的殖利率曲線會呈現正斜率狀態。如果短天期債券殖利率大於長天期債券殖利率,殖利率曲線就會呈現負斜率,就是一般所稱的「殖利率倒掛」。債券殖利率倒掛是不尋常現象,暗示市場上對未來景氣的預期已經出現變化,投資人就要就要提高警覺。前面我們提到,一般市場會使用二年期公債為短天期公債的代表;十年期公債為長天期公債的代表,當二年期美國公債殖利率與十年期美國公債殖利率倒掛時,就會引起市場的高度注意。

另一個也經常被衡量殖利率倒掛的指標是「三個月期美國公債殖利率」與「十年期美國公債殖利率」的利差。此處我們以二年期公債作為短天期公債的代表。

根據 FRED 網站提供的圖表資料顯示,自 1999 年後發生二年期美國公債殖利率與十年期美國公債殖利率倒掛後的一年內,都發生美國定義上的經濟衰退,如 2000 年的網路科技泡沫、2008 年的金融海嘯與 2020 年爆發的 COVID-19 疫情。

https://ithelp.ithome.com.tw/upload/images/20220912/20150150Uk8Z0SDxsO.png

Source:Federal Reserve Economic Data(FRED)

事實上,自 2022 年 7 月 6 日 截至 2022 年 9 月 9 日為止,已持續兩個月的長短天期美國公債殖利率倒掛現象。美國是全球經濟的火車頭,當美股持續走弱,臺股也不太可能置身事外,因此當領先指標已經發出警訊,投資人就可以適時調整投資策略。由於目前全球經濟衰退疑慮未消,而 Fed 作為全世界金融機構的老大,因此 Fed 的一舉一動就成為全球市場關注的焦點。

不要和 Fed 抗衡

曾經成功預測 1987 年美股崩盤的美國投資專家 馬丁.茲威格(Martin Zweig)說過一句名言:「不要和 Fed 抗衡。Fed(Federal Reserve System) 是 美國聯邦準備理事會,簡稱 聯準會,也就是美國的中央銀行。由於美國基準利率與美國公債殖利率呈現正向關係,所以 Fed 的利率決策會直接影響美國公債殖利率。當 Fed 採取降息措施,會造成美國公債殖利率下降,使美國公債價格上漲;當 Fed 採取升息措施,會造成美國公債殖利率上升,使美國公債價格下跌。

當 2020 年全世界發生 COVID-19 黑天鵝事件,股市卻能馬上 V 型反轉,就是 Fed 採取一連串的降息與量化寬鬆政策,強力救市的結果;然而時過境遷,現在 2022 年全球正處於高通膨環境,Fed 也採取較為鷹派的升息措施。因為 FED 的利率政策對美國公債殖利率有決定性的影響,而美國公債殖利率又是標定資產資本價格的基礎,同時也影響市場對於全球景氣的看法,這也是為什麼 Fed 動向總是受市場矚目的原因。

橡樹資本(Oaktree Capital)共同創辦人 霍華德· 馬克司(Howard Marks)在著作《投資最重要的事》中提到「最重要的事是注意經濟週期」。也許我們沒有避開這次股市的大幅修正,不過掌握市場週期可以關注的重點,我們就可以為下一次景氣循環做好準備。

查詢美國公債殖利率

許多國外財經平台和都提供查詢美國公債殖利率的服務。如 CNBCBloombergInvesting.com 等。

這裡我們直接從 美國財政部 網站的 Daily Treasury Par Yield Curve Rates 頁面,查詢各期別的美國公債殖利率。

美國財政部首頁 > Data > Daily Treasury Par Yield Curve Rates

在「Daily Treasury Par Yield Curve Rates」頁面,在「Select Time Period」下拉式選單可以選擇各年份和「Current Month」的時間區間,然後按下「Apply」後就會列出 1 個月至 30 年期的美國公債殖利率:

https://ithelp.ithome.com.tw/upload/images/20220912/20150150AOMyOlJRiL.png

按下 「Download CSV」連結,就可以下載該資料的 CSV 檔案。以「Current Month」(2022 年 9 月)為例,CSV 檔案連結如下:

https://home.treasury.gov/resource-center/data-chart-center/interest-rates/daily-treasury-rates.csv/all/202209?type=daily_treasury_yield_curve&field_tdr_date_value_month=202209&page&_format=csv

我們將以上 URL 路徑及參數為 202209 的部分換成目標日期的年月,就可以取得該年月份各期別的美國公債殖利率資訊。

實作:取得美國公債殖利率

我們新增一個 UsdtScraperService 表示從美國財政部網站取得資料的服務。使用 Nest CLI 建立 UsdtScraperService

$ nest g service scraper/usdt-scraper --flat --no-spec

Nest CLI 會在 src/scraper 目錄下建立 usdt-scraper.service.ts 檔案,並且將 UsdtScraperService 加入至 ScraperModuleproviders 設定。

開啟 src/scraper/usdt-scraper.service.ts 檔案,在 UsdtScraperService 實作 fetchUsTreasuryYields() 方法,取得取得美國公債殖利率:

import * as csvtojson from 'csvtojson';
import * as numeral from 'numeral';
import { DateTime } from 'luxon';
import { Injectable } from '@nestjs/common';
import { HttpService } from '@nestjs/axios';
import { firstValueFrom } from 'rxjs';

@Injectable()
export class UsdtScraperService {
  constructor(private httpService: HttpService) {}

  async fetchUsTreasuryYields(date: string) {
    const dt = DateTime.fromISO(date);
    const month = dt.toFormat('yyyyMM');
    const url = `https://home.treasury.gov/resource-center/data-chart-center/interest-rates/daily-treasury-rates.csv/all/${month}?type=daily_treasury_yield_curve&field_tdr_date_value_month=${month}&page&_format=csv`

    // 取得回應資料
    const responseData = await firstValueFrom(this.httpService.get(url))
      .then(response => csvtojson({ noheader: true, output: 'csv' }).fromString(response.data));

    // 若尚無資料則回傳 null
    const [ fields, ...rows ] = responseData;
    if (fields[0] !== 'Date') return null;

    const data = rows.map(row => {
      // 轉換日期格式
      const date = DateTime.fromFormat(row[0], 'MM/dd/yyyy').toISODate()

      // 將 string 型別數字轉換成 number
      const raw = row.slice(1).map(data => numeral(data).value());

      const [
        us1m,   // 美國 1 個月期公債殖利率
        us2m,   // 美國 2 個月期公債殖利率
        us3m,   // 美國 3 個月期公債殖利率
        us6m,   // 美國 6 個月期公債殖利率
        us1y,   // 美國 1 年期公債殖利率
        us2y,   // 美國 2 年期公債殖利率
        us3y,   // 美國 3 年期公債殖利率
        us5y,   // 美國 5 年期公債殖利率
        us7y,   // 美國 7 年期公債殖利率
        us10y,  // 美國 10 年期公債殖利率
        us20y,  // 美國 20 年期公債殖利率
        us30y,  // 美國 30 年期公債殖利率
      ] = raw;

      return { date, us1m, us2m, us3m, us6m, us1y, us2y, us3y, us5y, us7y, us10y, us20y, us30y };
    }).find(data => data.date === date);  // 取得目標日期的美國公債殖利率

    return data;
  }
}

fetchUsTreasuryYields() 方法中,需要指定 date 參數,表示要取得美國公債殖利率的日期。我們定義回傳的物件欄位包含如下:

  • date:日期
  • us1m:美國 1 個月期公債殖利率
  • us2m:美國 2 個月期公債殖利率
  • us3m:美國 3 個月期公債殖利率
  • us6m:美國 6 個月期公債殖利率
  • us1y:美國 1 年期公債殖利率
  • us2y:美國 2 年期公債殖利率
  • us3y:美國 3 年期公債殖利率
  • us5y:美國 5 年期公債殖利率
  • us7y:美國 7 年期公債殖利率
  • us10y:美國 10 年期公債殖利率
  • us20y:美國 20 年期公債殖利率
  • us30y:美國 30 年期公債殖利率

完成後,我們只要使用 UsdtScraperServicefetchUsTreasuryYields() 方法,就可以按日期取得美國公債殖利率。以日期 2022-07-01 為例:

{
  date: '2022-07-01',
  us1m: 1.27,
  us2m: 1.68,
  us3m: 1.73,
  us6m: 2.52,
  us1y: 2.79,
  us2y: 2.84,
  us3y: 2.85,
  us5y: 2.88,
  us7y: 2.92,
  us10y: 2.88,
  us20y: 3.35,
  us30y: 3.11
}

本日小結

  • 債券是股票之外另一個重要的投資工具,美國公債是所有債券中最重要的避險資產。
  • 債券價格與債券殖利率呈反向關係。債券價格上漲,殖利率就會下跌;債券價格下跌,殖利率就會上漲。
  • 美國十年期公債殖利率可以視為無風險利率,而無風險利率會影響資本資產定價的基準。
  • 債券殖利率曲線是由不同天期的債券殖利率與到期期限繪製成的圖表,縱軸代表債券殖利率,橫軸代表債券到期期限。
  • 正常的債券殖利率曲線應為正斜率,當短天期美國公債殖利率高於長天期美國公債殖利率時,就是殖利率倒掛現象。
  • 美國二年期公債殖利率與十年期公債殖利率的利差被視為是景氣反轉的領先指標。
  • 瞭解如何在美國財政部網站上查詢並實作取得美國公債殖利率的方法。

Node.js 量化投資全攻略:從資料收集到自動化交易系統建構實戰
本系列文已正式出版為《Node.js 量化投資全攻略:從資料收集到自動化交易系統建構實戰》。本書新增了全新內容和實用範例,為你提供更深入的學習體驗!歡迎參考選購,開始你的量化投資之旅!
天瓏網路書店連結:https://www.tenlong.com.tw/products/9786263336070


上一篇
Day 11 - 全球經濟火車頭:美股四大指數
下一篇
Day 13 - 觀察產業輪動:產業分類股價指數
系列文
從 Node.js 開發者到量化交易者:打造屬於自己的投資系統31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言